# 编译器设置
CXX := g++
CXXFLAGS := -std=c++17 -Wall -Wextra -pthread -g

# 目录设置
BUILD_DIR := ./build

# 源文件和目标文件
SRCS := thread_safe_queue.cpp parse_info.cpp main.cpp
OBJS := $(addprefix $(BUILD_DIR)/,$(SRCS:.cpp=.o))
TARGET := server

# 确保build目录存在
$(shell mkdir -p $(BUILD_DIR))

# 默认目标
all: $(TARGET)

# 链接生成可执行文件
$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $^

# 编译每个.cpp文件为.o文件，并放到build目录
$(BUILD_DIR)/%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -rf $(BUILD_DIR) $(TARGET)

# 伪目标声明
.PHONY: all clean